package com.itheima.service;


import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.pojo.Setmeal;

import java.util.List;
import java.util.Map;

/**
 * 套餐服务接口
 */
public interface SetmealService {

    /**
     * 分页查询
     *
     * @param queryPageBean 实体类 包括当前页,每页条数,查询条件
     * @return PageResult 实体类 包括总条数,当前页结果
     */
    PageResult findPage(QueryPageBean queryPageBean);

    /**
     * 新增套餐
     *
     * @param setmeal       套餐信息
     * @param checkgroupIds 与套餐相关的检查组id
     */
    void add(Setmeal setmeal, Integer[] checkgroupIds);

    /**
     * 查询所有图片名称
     *
     * @return List<String> 图片名称集合
     */
    List<String> findAllImg();

    /**
     * 根据id查询套餐
     *
     * @param setmealId 套餐id
     * @return 套餐信息
     */
    Setmeal findById(Integer setmealId);

    /**
     * 根据套餐id查询所有检查组id
     *
     * @param setmealId 套餐id
     * @return List<Integer> 检查组id集合
     */
    List<Integer> findCheckGroupIdBysetMealId(Integer setmealId);

    /**
     * 编辑套餐
     *
     * @param setmeal       套餐信息
     * @param checkgroupIds 检查组id
     */
    void edit(Setmeal setmeal, Integer[] checkgroupIds);

    /**
     * 根据id删除套餐
     *
     * @param setmealId 套餐id
     */
    void delete(Integer setmealId);

    /**
     * 查询所有套餐
     *
     * @return List<Integer> 套餐集合
     */
    List<Setmeal> findAll();

    /**
     * 根据id查询套餐基本数据
     *
     * @param id 套餐id
     * @return 套餐基本信息
     */
    Setmeal findSetmealBasicById(Integer id);

    /**
     * 查询套餐 预约数量
     *
     * @return 套餐名称 及对应的 预约数量
     */
    List<Map<String, Object>> findSetmealCount();

}
